/**
 * 
 */
package cl.utfsm.inf.lp;

/**
 * @author usuario
 *
 */
public class Alfil implements PersonajeExt{

	private int id;
	private String nombreTipo;
	private int tipo;
	private int[] posicion;
	private boolean estado;
	public int movx;
	public int movy;
	
	Alfil(){
		this.nombreTipo= "Alfil";
		this.setEstado(true);
		this.movx = 1; 
		this.movy = 1;  //el alfil se mueve un espacio hacia arriba y uno hacia la derecha
	}
	
	
	@Override
	public void setTipo(int tipo) {
		// TODO Auto-generated method stub
		
		this.tipo = tipo;  //para identificar personaje/objetos
	}

	@Override
	public int getTipo() {
		// TODO Auto-generated method stub
		return this.tipo;
	}

	@Override
	public String getNombreTipo() {
		// TODO Auto-generated method stub
		
		return this.nombreTipo;
	}

	@Override
	public int getId() {
		// TODO Auto-generated method stub
		
		return this.id;
	}

	@Override
	public void setId(int idPass) {
		// TODO Auto-generated method stub
		this.id = idPass;
	}

	@Override
	public boolean setPosicion(int x, int y) {
		// TODO Auto-generated method stub
		this.posicion = new int[2];
		
		this.posicion[0] = x;
		this.posicion[1] = y;
		
		return false;  //la posicion del alfil depende de las coordenadas ingresadas por usuario
	}

	@Override
	public int[] getPosicion() {
		// TODO Auto-generated method stub
		return this.posicion;
	}

	@Override
	public int[] mover() {
		// TODO Auto-generated method stub

	
		
		this.posicion[0] += movx;
		this.posicion[1] += movy;
	
		return this.posicion; // la nueva posicion depues de mover
	}

	@Override
	public void beber(ObjetoExt pocion) {
		// TODO Auto-generated method stub
		if(pocion.getEfecto() == true){ //si es un elixir
						
			pocion.tomar();
			this.posicion[1] += 1; //al beber elixir se avanza en y
		}
		if(pocion.getEfecto() == false){ //si es un veneno
			
			pocion.tomar(); //desaparece el objeto
			this.estado = false; //desaparece el personaje
			this.posicion[0] = -1;
			this.posicion[1] = -1;
					
		}
		
	}
	public void setEstado(boolean estado){
		this.estado = estado;  // estado: vivo o muerto
				
	}
	public boolean getEstado(){
		return this.estado;
		
	}


	@Override
	public int[] getMovimiento() {
		// TODO Auto-generated method stub
		int movimiento[] = new int[2];
		
		movimiento[0] = this.movx;
		movimiento[1] = this.movy;
		return movimiento;  //retorna el siguente movimiento
	}


	@Override
	public void beber(Objeto pocion) {
		// TODO Auto-generated method stub
		
	}
	
//	
//	public boolean verificarProxMovimiento(int tamTablero) {
//		// TODO Auto-generated method stub
//		
//		if(this.posicion[1] + 1 > tamTablero || this.posicion[0] + 1 > tamTablero  )return false;
//		else return true;
//	}
	

}
